package com.basker.pisces.core.meta.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.basker.pisces.core.meta.IDataField;

@Retention(RetentionPolicy.RUNTIME)
@Target(value = {ElementType.FIELD, ElementType.METHOD})
public @interface CollectionField {
    /**
     * 显示名称
     *
     * @return
     * @see IDataField#getDisplayName()
     */
    String displayName() default "";

    /**
     * 外键字段的描述
     *
     * @return
     */
    String fkFieldDescription() default "";

    /**
     * 集合项对应的class,为空则从返回的集合泛型中获取
     *
     * @return
     */
    Class<?>[] itemClass() default {};

    /**
     * 成员的名称,为空的话会按照POJO规范取方法的属性名
     *
     * @return
     * @see IDataField#getName()
     */
    String name() default "";

}
